/*
 * $Id: strv.h,v 1.4 2006-01-02 14:37:33 bacon Exp $
 */

#ifndef _XP_BAS_STRV_T_
#define _XP_BAS_STRV_T_

#include <xp/types.h>
#include <xp/macros.h>
#include <xp/bas/arr.h>

typedef struct xp_strv_t xp_strv_t;

struct xp_strv_t
{
	xp_arr_t vec;
	xp_bool_t __dynamic;
};

#ifdef __cplusplus
extern "C" {
#endif

xp_strv_t* xp_strv_open (xp_strv_t* strv);
void xp_strv_close (xp_strv_t* strv);
void xp_strv_clear (xp_strv_t* strv);

int xp_strv_addstr (xp_strv_t* strv, const xp_char_t* str);
int xp_strv_addstrn (xp_strv_t* strv, const xp_char_t* str, xp_size_t len);

xp_size_t xp_strv_getsize (xp_strv_t* strv);

#ifdef __cplusplus
}
#endif

#endif
